package com.newtouch.bxzs.business.statistics.service;

import com.newtouch.bxzs.business.statistics.model.bo.*;
import com.newtouch.bxzs.business.statistics.model.vo.ActivityAchievementListVO;
import com.newtouch.bxzs.business.statistics.model.vo.ActivityAchievementVO;
import com.newtouch.bxzs.business.statistics.model.vo.ActivityProductSaleRankingVO;


/**
 * 活动期业绩接口
 *
 * <p>
 * <b>History:</b>
 * <table border="1">
 * <tr>
 * <th>Date</th>
 * <th>Operator</th>
 * <th>Memo</th>
 * </tr>
 * <tr>
 * <td>2021/3/3 9:31</td>
 * <td>tianshangzhu</td>
 * <td>Create</td>
 * </tr>
 * </table>
 *
 * @author tianshangzhu
 * @version 1.0.0
 * @since 1.0.0
 */
public interface ActivityAchievementService {

    /**
     * 查询活动期个人业绩信息汇总
     *
     * @param activityAchievementVO 查询活动期个人业绩信息汇总VO
     * @return ActivityAchievementSummaryBO 查询活动期个人业绩信息汇总BO
     */
    ActivityAchievementSummaryBO getActivityAchievementSummary(ActivityAchievementVO activityAchievementVO);

    /**
     * 查看活动期个人业绩保单列表
     *
     * @param activityAchievementListVO 查看活动期个人业绩保单列表VO
     * @return ActivityAchievementPolicyListBO
     */
    ActivityAchievementPolicyListBO getActivityAchievementPolicyList(ActivityAchievementListVO activityAchievementListVO);

    /**
     * 查看活动期个人业绩详情
     *
     * @param policyNumber 保单号
     * @return AchievementPolicyDetailBO 查看活动期个人业绩详情BO
     */
    AchievementPolicyDetailBO getActivityAchievementDetail(String policyNumber);

    /**
     * 查看活动期个人业绩排名
     *
     * @param activityAchievementVO 查看活动期个人业绩排名VO
     * @return 查看活动期个人业绩排名列表BO
     */
    ActivityAchievementRankingListBO getActivityAchievementRanking(ActivityAchievementVO activityAchievementVO);

    /**
     * 查看活动期产品销量排名
     *
     * @param activityProductSaleRankingVO 查看活动期产品销量排名VO
     * @return ActivityProductSaleRankingListBO 查看活动期产品销量排名BO
     */
    ActivityProductSaleRankingListBO getActivityProductSaleRanking(ActivityProductSaleRankingVO activityProductSaleRankingVO);

}
